<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    // 异步：js 为单线程的 在在执行时 从上往下 顺序执行 ，在遇到 异步函数{setTimeout}时 会将其 
    // 放到 另一个线程（异步线程） 中 等待 主线程 执行完毕 再将其拉回 执行
    

    // 同一个 异步线程 先进先出 微函数 相比 宏函数 先出 先执行 先调用


    //await-async 将 Promise 链式调用的 [异步] 改为 [同步]
    // await-async的异步 主要依赖于 Promise 的 实例对象
    // await-async 的 本质 为Promise 的语法糖

    // await-async的  本质是 将他所在的那个函数 放在了 异步 线程中

    const p = new Promise((resolve,reject) => {
        setTimeout(() => {
            const data = '123'
            reject(data)
        },2000)
    })

    // p.then(res => {
    //     console.log(res);
    // })

    async function f(){
        try{
            const res = await p;
            console.log(res);
        }catch(err){
            console.log('这是reject',err);
        }

    }

    f()




</script>